% # File Info -- stBody.tex, Part of SDUSThesis' sample, body part.

% Version Control System Information -- Subversion, hosts on <+Google Code+>;
% $URL: http://sdusthesis.googlecode.com/svn/tags/beta-0.5/sample/stBody.tex $;
% $Id: stBody.tex 20 2012-05-13 11:24:20Z suxpert@gmail.com $;

% # Copyright (C) 2009-2012, LiTuX, All wrongs reserved.
%
%	Permission is granted to copy, distribute and/or modify this document
%	under the terms of the GNU Free Documentation License, Version 1.3
%	or any later version published by the Free Software Foundation;
%	with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
%	A copy of the license is included in the section entitled "GNU
%	Free Documentation License".
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{\SDUSThesis{} 宏包简介}
\echapter{A brief introduction to \SDUSThesis{}}

\section{\SDUSThesis{} 制作背景}
\esection{Background of \SDUSThesis{}}
公元 2007 年 \footnote{大约，具体时间记不清了}，我第一次听说了 \LaTeX{} 这么
闪闪发光的东西，但一直都没有用过。Chaosconst 同学应该是我本科同学中最先用
\LaTeX{} 的了，于是我也顺便了解到了在 Linux 下玩 \LaTeX{} 加中文的各种困难，
——最主要的就是生成字体。也正因为这个原因，很久以来我都没有想过要仔细的研究
下 \LaTeX{}，尽管号称我们是数学专业。

之后的几年中，其实我都没用过 \LaTeX{}。真正开始了解 \LaTeX{} 是因为在 word 中
排版公式的各种困难。——当然，我指的是 2003 版。由于微软公式 3.0 的能耐实在
不怎么样，因此作为数学专业，似乎有必要拿出另一个闪闪发亮的东西来说事了，这个
东西就是大名鼎鼎的 MathType。

早先版本的 MathType 我其实没怎么用过，因为当我试图开始用 MathType 的时候发现
他们已经出到了版本 6。尽管没有汉化，尽管只有 30 天试用，我还是很“高级”的选择
了第六版的 MathType，之后没过多久，MathType 重要更新出现了：支持 \TeX{} 语法
和公式转换，这让暂时还玩不转 \LaTeX{} 但讨厌用鼠标不断点面板来完成公式输入的我
感到无比兴奋，毕竟 MathType 里面繁杂的快捷键远非我这么笨的人能记得清楚的
\footnote{似乎我一直学不会 Emacs 应该也是这个原因……囧\CJKglue r2}。
于是，又一次跟大多数人不同，我的很多 \LaTeX{} 实践，实际上是在
MathType 上完成的 \footnote{如果您了解我，一定应该听说过另一个不同是什么。
对了，Vim。同很多人是在 Linux 上学习 Vim 不同，我第一次试图玩 Vim 是在 cygwin
上，而真正学习 Vim 是在一个 Live 在某祖宗辈 Compaq（128M 内存 5G 硬盘）上的
FreeDOS 中。}。当然，由于毕竟 MathType 不是 \LaTeX{}，它们在某些地方上还是有所
不同的，当然这是后话，暂且不提。

有了这样的经历之后，我做了一个艰难的决定，我要在本科毕业设计上玩一把 \LaTeX{}，
毕竟我们的公式肯定少不了。于是尽管依然用的是 word，我的毕业设计大部分都是用
Vim 敲出来的。事实上，在还没有非常熟练的掌握 word 很多“智能”的功能之前，想在
word 里面方便的输入纯文本是一个很辛苦的事情，因为 word 总会自以为是的把某些东西
给变成它认为正确的样子即使其实是错的 \footnote{当然，后来我才知道可以把这个
伪智能关掉。不过毕竟 word 不是文本编辑器，编辑纯文本没有优势。}。

就这样，第一次较为大型的“\LaTeX{} 应用”就算完成了，——至此还没有真正用过
\LaTeX{}。作为比较，chaosconst 大牛的毕设答辩，便采用了传奇的 beamer+CJK 来做。

于是本科就算毕业了……之后终于在 Ubuntu 下借助 TeXLive 自带 gbsn 字体第一次
实现 \LaTeX{} 中文排版（当然效果不是很好），才算是真正完成了 \LaTeX{} 处子秀。

之后，当听过 XeTeX 这么拉风的引擎之后，果断抛弃 CJK 投身 Xe\LaTeX{}。由于
Ubuntu 仓库当年的 TeXLive 还是 2007，其中的 XeTeX 版本不够使用 xeCJK 跟
zhspacing，当时排版的时候不得不使用最原始的 fontspec 指定全局中文字体，效果
自然好不到哪里去。但是此后终于可以 Happy 的说，已经可以告别生成字体的噩梦了
\footnote{事实上，这个具体是不是噩梦，有多么噩梦我都还不知道，只是听 chaosconst
同学说过很折腾。}。

之后向 chaosconst 同学推荐 Xe\LaTeX{}，并且之后玩过的牵涉中文的大部分都用
Xe\LaTeX{}。期间某次偶尔跟 chaosconst 同学聊起来，提到本科的时候他已经可以写
宏包，于是跟他夸口说有空一定做一个山东科技大学毕业论文的模板出来。
——挖下去的这个坑是制作 \SDUSThesis{} 的一个重要原因。

当然另外的原因也很重要，毕竟用 word 的时间不短，虽然不敢说精通但至少对付常规
任务还不至于很困难。当见到所谓的“模板”——排版打印格式规定之后，本想做一个
真正意义上的模板 \footnote{在我曾经做的关于 Word 排版的报告上曾提到过，真正意义
的模板不是说什么东西该用什么格式，而是把样式等统统设置好的一个 dot 文件。}，
但毕竟对 word 算不上精通，而且也玩不转 VBA 编程，制作过程中遇到各种无法调和、
令人沮丧的矛盾，终于一怒之下扔掉鼠标曰：“\textbf{我要做 \LaTeX{} 模板！！}”

这就是 \SDUSThesis{} 诞生的原因，——尽管彼时我对 \LaTeX{} 只能算是初级使用
的水平。怕什么！现学现用。于是就各种搜索各种询问开启了制作 \SDUSThesis{} 的漫长
旅途。

在硬盘上折腾了几个月之后，决定该高级一点，于是来到
\href{http://code.google.com/p/biblatex-zh/}{\google{} Code} 建项目托管，
为的是能看到原来曾经怎么弄的后来又怎么改的。我甚至没期待过这个东西会有除了我
之外的其他人用，更没想过是否会真的有一天被“招安”，替换掉那个 2005 年版的
“格式规定”，光明正大的出现在学校的网站上……或许真的会有那么一天吧，尽管
文档类的很多功能实现都不怎么漂亮……

\section{\SDUSThesis{} 使用方法}
\esection{Usage of \SDUSThesis{}}
前面也说到，由于本人是 Xe\LaTeX{}控，因而 \SDUSThesis{} 的制作过程中主要采用
Xe\LaTeX{} 进行测试，尽管制作过程中针对 pdflatex 引擎做了一些调整，但本模板%
\textbf{只保证 pdflatex 可以通过，不保证它的输出质量}，
因此我们建议采用 xelatex 引擎来生成论文。

\SDUSThesis{} 通过调用 C\TeX{} 宏包来支持中文，因此 C\TeX{} 的功能大部分都可以
直接支持。除此之外，\SDUSThesis{} 文档类默认调用了包括 hyperref、amsmath 系列、
graphicx 等宏包，针对论文格式要求做了很多设置，因此很多时候足够毕业论文排版的
需求，大部分都采用默认设置即可，为的是做成傻瓜宏包方便使用。

为方便打印，\SDUSThesis{} 的整体设计以双面打印为准则，因此生成的电子文档中
会出现空白页。PDF 阅读器采用书籍视图时（如果支持）能够看到接近最终装订效果的
样子，对于不支持书籍视图的阅读器，双面视图能给出类似的感官效果。

\subsection{\SDUSThesis{} 论文结构}
\esubsection{Structure of \SDUSThesis{} paper}

根据“山东科技大学硕士学位论文排版打印格式规定”（\autoref{ch:std}），
本校硕士学位论文典型的由以下几部分构成：论文封面，论文扉页（中、英文），
声明，摘要（中、英文），目录（中、英文），论文主体内容，致谢，参考文献，
个人简介及成果，附录等。

由于文前部分结构跟格式相对统一，因此在 \SDUSThesis{} 中我们将这一部分
（包括封面、扉页、声明）统一为一个命令，通过 \verb|\maketitle| 来生成。
这之前需要准备的工作是，类似 \LaTeX{} 基本文档类，要告诉 \LaTeX{} 一些必要的
信息，以下是这些信息的典型设置样例 \footnote{
依然由于 listings 宏包处理中文的问题，我们不得不在中文前面添加空格，即使这样，
某些地方依然出现问题，将就看吧……}，这些设置可以放在导言区或者 document 环境
的开头（建议放在导言区）。
\lstinputlisting[firstline=8, lastline=31, ]{example_title.tex}
命令详解：
\begin{itemize}
	\item \verb|\author[]{}|：
		设置作者姓名。可选参数为英文名，不使用则与必选参数相同；
	\item \verb|\title[]{}|：
		设置论文标题。可选参数为英文标题，不使用则与必选参数相同。
		标题中可以用 \verb|\\| 进行手动换行（但会引起 hyperref 警告）；
	\item \verb|\date{}|：
		设置论文提交日期。如果采用格式 \verb|YYYY-MM-DD|
		（其中分隔符还可以用 \verb|/| 跟 \verb|.|）则 \SDUSThesis{}
		会记录这个日期，并在合适的位置用合适的格式显示日期。
		如果采用格式 \verb|YYYY-MM|（支持同上分隔符）则默认日期
		为当月 1 号（尽管可能用不到）。否则会使用当前日期。

		\SDUSThesis{} 提供简单的日期分割使用命令，比如
		\verb|\useDate{format}| 命令会使用由 \verb|\date|
		命令所设置的日期，format 可以是 short/long 跟 old, big, small
		的六种组合，分别表示不显示日/显示日与英文、中文阿拉伯数字、
		中文数字几种样式。

		\verb|\showDate[format]{DATE}| 会按照上述 format 将以上述格式
		输入的参数 DATE 显示出来。
	\item \verb|\classNo{}|：
		设置分类号，默认为空。
	\item \verb|\secType{}|：
		设置密级，默认为公开。
	\item \verb|\UDC{}|：
		设置 UDC 编码，默认为空。
	\item \verb|\orgNo{}|：
		设置单位代码，默认为 10424。

	\item \verb|\degree{TYPE}{LEVEL}|：
		设置学位信息，TYPE 为学位类型，LEVEL 为学位等级。默认为理学硕士
		（Science、硕士）。
	\item \verb|\major{}|：
		设置专业信息。如果专业名称超过七个汉字长度，\SDUSThesis{} 会
		试图将其分成两部分分行显示。默认的分行方式是折半分行，您也可以
		通过使用 \verb|\\|（如果用 xelatex 引擎）来手动分行。为了兼容
		pdflatex，如果名称中出现一次空格，\SDUSThesis{} 也认为其是
		分行标志而在此将字符串分成两行显示。

		专业名称超过十四个汉字时可能会造成排版错位。这时您可以修改下
		专业名称的说法，或者 Hack \SDUSThesis{} 的代码。
	\item \verb|\field{}|：
		设置研究方向。研究方向名称的处理同上，会进行必要的分行。

	\item \verb|\supervisor[]{}|：
		设置指导教师姓名，可选参数为英文姓名，置空则与必选参数相同。
	\item \verb|\ptitle{}{}|：
		设置导师职称，两个参数分别为中文跟英文职称。
	\item \verb|\advisor{}{}|：
		如果有其他导师，使用这个命令添加。两个参数分别为导师姓名和职称，
		该命令可以多次使用。

	\item \verb|\enroll{DATE}|：
		设置入学日期，日期的格式同前述。默认为 \verb|\date| 命令指定的
		年份之前三年的 9 月。
	\item \verb|\defense{}|：
		设置答辩日期，日期格式同前。默认为 \verb|\date| 命令指定年份的
		6 月。

	\item \verb|\college{}{}|：
		设置学院名称，两个参数分别为中文名称跟英文名称。
\end{itemize}

上述设置做好之后，\verb|\maketitle| 便会打印出前八页，顺序依次为封面、空白页、
中文扉页、空白页、英文扉页、空白页、声明、空白页。图 \ref{fig:egTitle} 是上述
设置样例下生成的封面。

\begin{figure}[htpb]
	\begin{center}
		\fbox{
		\includegraphics[scale=0.35,page=1]{example_title.pdf}
		}
		\fbox{
		\includegraphics[scale=0.35,page=3]{example_title.pdf}
		}\\
		\fbox{
		\includegraphics[scale=0.35,page=5]{example_title.pdf}
		}
		\fbox{
		\includegraphics[scale=0.35,page=7]{example_title.pdf}
		}
	\end{center}
	\caption{\SDUSThesis{} 宏包制作的封面示例}
	\label{fig:egTitle}
\end{figure}

再之后，您需要使用命令 \verb|\stfrontmatter| 来告知 \SDUSThesis{}
接下来将开始摘要和目录部分。

\SDUSThesis{} 将中文摘要跟英文摘要实现为两个环境，环境名称分别为
\textsf{zhAbstract} 和 \textsf{enAbstract}，环境中填写摘要文字即可。
根据《格式要求》，您需要在两个摘要的文字后方（摘要环境内部）使用
\textsf{zhKeywords} 跟 \textsf{enKeywords} 命令来设置关键词。

\SDUSThesis{} 生成中英文目录的方式非常简单。根据《格式要求》，您只需要在上述
摘要环境之后使用命令 \verb|\makecontents| 即可生成中英文目录。之后您需要使用
\verb|\stmainmatter| 来告知 \SDUSThesis{} 接下来即将开始正文。

正文的书写只需符合 \LaTeX{} 的规则即可，您可以使用任何您想要使用的功能，只要
实现该功能的宏包跟 \SDUSThesis{} 兼容即可。需要注意的是，为了实现自动生成中英文
目录的要求，在使用 \LaTeX{} 的章节命令之后，您需要再次使用 \SDUSThesis{} 定义
的设置英文章节名称的命令，像这样
\begin{lstlisting}
\chapter{ 章名称 }
\echapter{Chapter name}
\end{lstlisting}
对应 \verb|\section| 的英文命令为 \verb|\esection|，尽管由于格式要求中的目录
层级只需要两层，为了应对可能的需求，\SDUSThesis{} 也设置了子节命令
\verb|\esubsection|。

需要注意的是，由于章名称会出现在页眉，因此为了防止因章名称过长导致页眉效果
较差，\LaTeX{} 的章命令提供可选参数用于指定短章名。\SDUSThesis{} 也是支持的。

正文结束之后，您需要使用命令 \verb|\stbackmatter| 来告知 \SDUSThesis{}
正文结束。之后按照《格式要求》应该是致谢、参考文献、个人简介及成果以及附录。
典型的顺序是，附录要出现在最后，但其他的顺序您可以自己调整。

\SDUSThesis{} 也将致谢设为一个环境，名称为 \textsf{acknowledgement}，环境内容
为您致谢的文本。由于个人简介及成果部分的变化比较大，此处 \SDUSThesis{} 未作
任何假定，因此所有内容需要您自己完成：使用 \verb|\chapter| 及对应的
\verb|\echapter| 来设置章名、获得成果的列表等等，请尽情发挥您的本领 \verb|:)|。

参考文献是需要特殊说明的一部分。\SDUSThesis{} 决定使用 \textsf{biblatex} 宏包
来支持参考文献，因此您需要在\textbf{导言区}提供参考文献数据库，在适当的位置
放置 \verb|\printbibliography| 命令显示参考文献列表……详情请参阅
\autoref{ch:bibtex}。

对于附录，《格式要求》中并没有明确说明。但一般情况下附录应位于最后部分。
在 \SDUSThesis{} 中，使用 \verb|\stappendix| 命令开始附录部分，之后便使用同
普通章节相同的方法即可。

